<?php


namespace app\admin\command;
use think\console\Command;
use think\console\Input;
use think\console\Output;

class Backup extends Command
{
    //定义任务名和描述
    protected function configure(){
        $this ->setName('Backup')->setDescription("php think backup 备份mysql数据库");
    }

    //调用该类时,会自动运行execute方法
    protected function execute(Input $input, Output $output){
        set_time_limit(0);
        ini_set('memory_limit','5000M');

        // 配置项-----必传值
        $config = [
            // 服务器地址
            'host'        => Config('database.hostname'),
            // 数据库名
            'database'    => Config('database.database'),
            // 用户名
            'user'        => Config('database.username'),
            // 密码
            'password'    => Config('database.password'),
            // 端口
            'port'        => Config('database.hostport'),
            // 字符编码
            'charset'     => Config('database.charset')
        ];
        // 备份
        $dir = "../data/backup";//备份路径
        $data = \cocolait\sql\Backup::instance($config)->backUp($dir,[],true,['is_compress' => 0]);

        error_log("[".date('Y-m-d H:i:s')."] 数据库备份 <br>".json_encode($data),3,'E:/backup_error.log');
    }
}